package com.yidu.service;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.springframework.beans.BeanUtils;

import com.yidu.dao.ModuleDao;
import com.yidu.domain.Module;
import com.yidu.domain.Role;
import com.yidu.domain.User;
import com.yidu.domain.UserRole;
import com.yidu.domain.vo.ModuleVo;
import com.yidu.utils.Pages;

public class ModuleService implements ModuleServiceInter{
   private ModuleDao moduleDao;
	public ModuleDao getModuleDao() {
	return moduleDao;
    }

    public void setModuleDao(ModuleDao moduleDao) {
	this.moduleDao = moduleDao;
    }

	@Override
	public void add(ModuleVo vo) {
		Module module = new Module();
		BeanUtils.copyProperties(vo, module);
		if(module.getModuleValidity().equals("on")) {
			module.setModuleValidity("有效");
		}else {
			module.setModuleValidity("无效");
		}
		if(module.getModModuleId().equals("") || module.getModModuleId()==null) {
			module.setModModuleId("0");
		}
		moduleDao.add(module);
	}

	@Override
	public void delete(String moduleId) {
		// TODO Auto-generated method stub
		Module module = moduleDao.findById(moduleId);
		module.setModuleValidity("无效");
		moduleDao.update(module);
	}

	@Override
	public void update(ModuleVo vo) {
		String str = vo.getModuleValidity();
		if(vo.getModuleValidity().equals("on") || vo.getModuleValidity().equals("true")) {
			vo.setModuleValidity("有效");
		}else {
			vo.setModuleValidity("无效");
		}
		Module module =  moduleDao.findById(vo.getModuleId());
		if(str.equals("true") || str.equals("false")) {
			module.setModuleValidity(vo.getModuleValidity());
			moduleDao.update(module);
		}else {
			BeanUtils.copyProperties(vo,module);
			moduleDao.update(module);
		}
	}

	@Override
	public List<ModuleVo> findAllPage(ModuleVo vo, Pages page) {
		Module module = new Module();
		BeanUtils.copyProperties(vo, module);
		List<Module> list = moduleDao.findAllPage(module, page);
		
		List<ModuleVo> listvo = new ArrayList<ModuleVo>();
		for(Iterator iterator = list.iterator();iterator.hasNext();) {
			Module po = (Module) iterator.next();
			ModuleVo modulevo = new ModuleVo();
			BeanUtils.copyProperties(po,modulevo);
			if(po.getModModuleId()!=null) {
				if(po.getModModuleId().equals("0")) {
					modulevo.setModmoduleName("该模块为一级模块");
				}else {
					Module module2 = moduleDao.findById(po.getModModuleId());
					modulevo.setModmoduleName(module2.getModuleName());
				}
			}
			listvo.add(modulevo);
			
		}
		
		return listvo;
	}

	@Override
	public ModuleVo findById(String moduleId) {
		// TODO Auto-generated method stub
		System.out.println("我的id"+moduleId);
		Module po = moduleDao.findById(moduleId);
		ModuleVo vo = new ModuleVo();
		BeanUtils.copyProperties(po, vo);
		return vo;
	}

	@Override
	public void deleteAll(String moduleId) {
		// TODO Auto-generated method stub
		String[] str = moduleId.split(",");
		for(int i=0;i<str.length;i++) {
			moduleDao.delete(moduleId);
		}
	}

	@Override
	public Long Count(ModuleVo vo) {
		// TODO Auto-generated method stub
		return moduleDao.count(vo);
	}
	/**
	 * 查询全部信息，不分页
	 */
	@Override
	public List<ModuleVo> findAll() {
		List<Module> list = moduleDao.findAll();
		List<ModuleVo> listVo = new ArrayList<ModuleVo>();
		for (Iterator iterator = list.iterator(); iterator.hasNext();) {
			Module module = (Module) iterator.next();
			ModuleVo moduleVo = new ModuleVo();
			BeanUtils.copyProperties(module, moduleVo);
			listVo.add(moduleVo);
		}
		
		return listVo;
	}

}
